using System;
using Oracle.ManagedDataAccess.Client;
using OracleInternal.Common;

namespace OracleInternal.BulkCopy
{
	internal interface IBulkCopyDataSource
	{
		void Initialize(ColumnDescribeInfo[] destinationColumnsMetaData);

		int GetColumnCount();

		int GetColumnOrdinal(string columnName);

		Type GetSrcColumnType(int columnIndex);

		int GetBatchSize();

		int PopulateRows(OracleBulkCopyColumnMappingCollection internalColumnMappings, int numOfRow);

		int GetRows(OracleBulkCopyColumnMappingCollection internalColumnMappings, int numOfRows, ref BulkCopyRows rows);
	}
}
